跳到主要内容

JavaScript 箭头函数

阐述

箭头函数是除了普通 JavaScript 函数之外的另一种定义函数的方式,具有简洁的语法,但语义与普通函数有所不同。

语法

箭头函数由参数部分、箭头 => 和函数体三部分组成:

  • 参数部分为一个括号中由逗号分开的零个、一个或多个参数;当参数数量为 1 时,也可以省略括号
  • 函数体部分可以是一个 JavaScript 表达式,也可以是大括号包含的多个 JavaScript 语句

语义

大部分与 JavaScript 函数相同,不同之处见下。

实例

箭头函数经常用在给高阶函数传入函数参数的场景,可以使程序变得更简洁:

const sum = arr.reduce((a, b) => a + b);
const even = arr.filter((v) => v % 2 === 0);
const double = arr.map((v) => v * 2);

性质

相关内容

箭头函数与普通函数有多种不同点:

箭头函数的词法作用域

由于箭头函数中用到的 this 本质上来自外层的闭包,所以它具有词法作用域:

const obj = {
birth: 1990,
getAge: function () {
var b = this.birth; // 1990
var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象
return fn();
},
};

obj.getAge(); // 25

这里,this 正确地指向了 obj

参考文献